import os
import pytest
from utils.email_util import Email_Utils
from utils.log_util import setup_logger
from config.constants import *
from utils.zipfile_util import zip_allure_report
from utils.shutil_util import *

if __name__ == '__main__':
    # 确保目录存在
    os.makedirs('./temp/report', exist_ok=True)
    os.makedirs('./zipfile', exist_ok=True)

    # 日志
    logg, log_file = setup_logger()

    # 清除旧的Allure报告数据和压缩文件
    clear_allure_results_dirs(['./temp/report', './zipfile/allure.zip'])

    # 执行测试 business or single
    pytest.main(['-vs', '--alluredir', './temp/report', '-m', 'userpayconfig'])

    # 生成Allure报告
    os.system('allure generate ./temp/report -o ./report/result --clean')

    try:
        # 压缩allure报告
        zip_allure_report('./temp', os.path.join(ZIPFILE_PATH, 'allure.zip'))
    except Exception as e:
        print(f"压缩报告时出错: {str(e)}")

    print(f'******************************{logg}******************{log_file}**************************')

    # 可选：发送邮件
    # email_utils = Email_Utils()
    # email_utils.send_email(log_file)